#include <iostream>


class Entity
{
public :
    int x,y;

    //mutable 修饰的变量能够被 const修饰的成员方法改变;
    mutable int z;

public :
    //const 在类的方法名后意味着该方法不改变类
    int const GetValue() const
    {
        z++;
        return x;
    }
};


int main()
{

    //const 在变量中的应用

    //const 在变量前意味着该变量的值不能改变
    const int example = 10;


    //const 在指针中的应用

    int target = 10;
    //const 位于* 前,意味着开发人员无法改变 a 指针所指的内存地址的值
    const int* a = new int;//等价于 int const* a = new int;
    //*a = 10; 会报错
    //但是可以改变a的指针地址;
    a = &target;

    //位于Int* 之后意味着，程序员可以改变b 指针指向地址的内容，但是不能改变指针地址
    int* const b = new int;
    //b = &target; 报错
    *b = target;

    

}